#include "BulletSoftBody/btDeformableBackwardEulerObjective.h"
#ifdef __cplusplus
extern "C" {
#endif
double bullet_btDeformableBackwardEulerObjective_GetFieldOfM_dt(btDeformableBackwardEulerObjective* c_this){
	return (double)(c_this->m_dt);
}

bool bullet_btDeformableBackwardEulerObjective_GetFieldOfM_implicit(btDeformableBackwardEulerObjective* c_this){
	return (bool)(c_this->m_implicit);
}

void bullet_btDeformableBackwardEulerObjective_initialize(btDeformableBackwardEulerObjective* c_this){
	c_this->initialize();
}

void bullet_btDeformableBackwardEulerObjective_reinitialize(btDeformableBackwardEulerObjective* c_this,bool nodeUpdated,double dt){
	bool c_arg_nodeUpdated=nodeUpdated;
	btScalar c_arg_dt=dt;
	c_this->reinitialize(c_arg_nodeUpdated,c_arg_dt);
}

void bullet_btDeformableBackwardEulerObjective_setConstraints(btDeformableBackwardEulerObjective* c_this,btContactSolverInfo* infoGlobal){
	btContactSolverInfo const& c_arg_infoGlobal=(btContactSolverInfo const&)(*infoGlobal);
	c_this->setConstraints(c_arg_infoGlobal);
}

void bullet_btDeformableBackwardEulerObjective_setDt(btDeformableBackwardEulerObjective* c_this,double dt){
	btScalar c_arg_dt=dt;
	c_this->setDt(c_arg_dt);
}

void bullet_btDeformableBackwardEulerObjective_setImplicit(btDeformableBackwardEulerObjective* c_this,bool implicit){
	bool c_arg_implicit=implicit;
	c_this->setImplicit(c_arg_implicit);
}

double bullet_btDeformableBackwardEulerObjective_totalEnergy(btDeformableBackwardEulerObjective* c_this,double dt){
	btScalar c_arg_dt=dt;
	btScalar c_out = c_this->totalEnergy(c_arg_dt);
	double wrap_out = (c_out);
	return wrap_out;
}

#ifdef __cplusplus
}
#endif
